home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Transactor
/
Transactor_11_1986_Transactor_Publishing.d64
/
mc graphics
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
12KB
|
892 lines
0 rem mc graphics (d. spruyt, 1985) :
1 :
2 rem 11 statements, 1 function
3 :
4 rem keyword characters: 58
5 :
6 rem keyword routine line ser #
7 rem s/mcon ho 11068 149
8 rem s/mset mcset 10746 150
9 rem s/hoff mcrstr 11154 151
10 rem s/mdraw mcdra 10472 152
11 rem s/mrect mcrec 11270 153
12 rem s/mcircle mccir 11362 154
13 rem s/mtext mctxt 11784 155
14 rem s/hclr hcl 11106 156
15 rem s/mcolor mccol 10954 157
16 rem s/mbox mcbox 11320 158
17 rem s/mdisc mcdis 11356 159
18 rem f/mchk( mchk 11136 160
19 :
20 rem ================================
21 :
145 .asc "mco[206]mse[212]hof[198]"
146 .asc "mdra[215]mrec[212]mcircl[197]"
147 .asc "mtex[212]hcl[210]mcolo[210]"
148 .asc "mbo[216]mdis[195]"
622 .asc "mchk":.byte $80+"("
1145 .word ho-1,mcset-1,mcrstr-1
1146 .word mcdra-1,mcrec-1,mccir-1
1147 .word mctxt-1,hcl-1,mccol-1
1148 .word mcbox-1,mcdis-1
1622 .word mchk-1
10472 mcdra lda #0
10474 sta t3
10476 jsr mcget5
10478 mdr1 lda #0
10480 sta $ab
10482 sta $ae
10484 lda t5
10486 sec
10488 sbc $a6
10490 bcs mdr2
10492 eor #$ff
10494 adc #1
10496 dec $ae
10498 mdr2 sta $ad
10500 lda $21
10502 sec
10504 sbc $a8
10506 bcs mdr3
10508 eor #$ff
10510 adc #1
10512 dec $ab
10514 mdr3 sta $aa
10516 lda $ad
10518 cmp $aa
10520 bcs mdr4
10522 lda $aa
10524 mdr4 sta $af
10526 lda #0
10528 sta $a3
10530 lda $aa
10532 sta $a4
10534 jsr mcdiv
10536 lda $a3
10538 sta $a9
10540 lda $a4
10542 sta $aa
10544 lda #0
10546 sta $a3
10548 lda $ad
10550 sta $a4
10552 jsr mcdiv
10554 lda $a3
10556 sta $ac
10558 lda $a4
10560 sta $ad
10562 lda #$80
10564 sta $a7
10566 sta $a5
10568 ldx #$a9
10570 jsr mcneg
10572 ldx #$ac
10574 jsr mcneg
10576 ldx $af
10578 mdr5 lda $a8
10580 sta $b5
10582 lda $a6
10584 sta $b4
10586 lda $b0
10588 jsr mcplo
10590 lda $a7
10592 clc
10594 adc $a9
10596 sta $a7
10598 lda $a8
10600 adc $aa
10602 sta $a8
10604 lda $a5
10606 clc
10608 adc $ac
10610 sta $a5
10612 lda $a6
10614 adc $ad
10616 sta $a6
10618 dex
10620 cpx #$ff
10622 bne mdr5
10624 rts
10626 ;
10628 mcplo sta $a4
10630 sta t4
10632 lda t3
10634 beq mcp2
10636 bmi mcp1
10638 jsr mcp2
10640 lda $b4
10642 clc
10644 adc t6
10646 sta $b4
10648 lda t4
10650 sta $a4
10652 jmp mcp2
10654 mcp1 jsr mcp2
10656 lda $b5
10658 clc
10660 adc t6
10662 sta $b5
10664 lda t4
10666 sta $a4
10668 mcp2 lda $b5
10670 cmp #$a0
10672 bcc mcp4
10674 mcp3 rts
10676 mcp4 lda $b4
10678 cmp #$c8
10680 bcs mcp3
10682 tya
10684 pha
10686 jsr ptr19
10688 lda $b5
10690 and #3
10692 tay
10694 lda mctbl2,y
10696 pha
10698 lda $b5
10700 lsr
10702 php
10704 lsr
10706 lda $a4
10708 bcs mcp5
10710 asl
10712 asl
10714 asl
10716 asl
10718 mcp5 plp
10720 bcs mcp6
10722 asl
10724 asl
10726 mcp6 sta $a4
10728 pla
10730 ldy #0
10732 jsr ropen
10734 and ($19),y
10736 ora $a4
10738 sta ($19),y
10740 jsr rclose
10742 jmp mcr5
10744 ;
10746 mcset lda #0
10748 sta t3
10750 jsr mcg1
10752 sta $b5
10754 jsr mcget
10756 sta $b4
10758 jsr mcget
10760 jmp mcplo
10762 ;
10764 mcget jsr $aefd
10766 mcg1 jsr $b79e
10768 txa
10770 rts
10772 ;
10774 mcdiv ldx #$10
10776 lda #0
10778 asl $a4
10780 mcdv1 rol
10782 bcs mcdv3
10784 cmp $af
10786 bcc mcdv2
10788 sbc $af
10790 mcdv2 rol $a3
10792 rol $a4
10794 dex
10796 bne mcdv1
10798 rts
10800 mcdv3 sbc $af
10802 sec
10804 bcs mcdv2
10806 ;
10808 mcneg lda 2,x
10810 bpl mcn1
10812 sec
10814 lda 0,x
10816 eor #$ff
10818 adc #0
10820 sta 0,x
10822 lda 1,x
10824 eor #$ff
10826 adc #0
10828 sta 1,x
10830 mcn1 rts
10832 ;
10834 ptr19 lda $b4
10836 lsr
10838 lsr
10840 and #$fe
10842 tay
10844 lda mctbl1,y
10846 sta $19
10848 lda mctbl1+1,y
10850 sta $1a
10852 lda $b4
10854 and #7
10856 sta $a3
10858 lda $b5
10860 and #$fc
10862 asl
10864 bcc p19r1
10866 inc $1a
10868 p19r1 clc
10870 ora $a3
10872 adc $19
10874 sta $19
10876 bcc p19r2
10878 inc $1a
10880 p19r2 rts
10882 ;
10884 mcrea lda $b4
10886 cmp #$c8
10888 bcc mcr2
10890 mcr1 lda #$ff
10892 rts
10894 mcr2 lda $b5
10896 cmp #$a0
10898 bcs mcr1
10900 tya
10902 pha
10904 jsr ptr19
10906 ldy #0
10908 lda $b5
10910 lsr
10912 php
10914 lsr
10916 jsr ropen
10918 lda ($19),y
10920 jsr rclose
10922 bcs mcr3
10924 lsr
10926 lsr
10928 lsr
10930 lsr
10932 mcr3 plp
10934 bcs mcr4
10936 lsr
10938 lsr
10940 mcr4 and #3
10942 mcr5 sta $a3
10944 pla
10946 tay
10948 lda $a3
10950 mcr6 rts
10952 ;
10954 mccol jsr mcg1
10956 sta $a7
10958 jsr mcget ;
10960 sta $a8
10962 jsr mcget
10964 sec
10966 sbc $a7
10968 bcc mcr6
10970 sta $a6
10972 jsr mcget
10974 sec
10976 sbc $a8
10978 bcc mcr6
10980 sta $a5
10982 jsr mcget
10984 sta $d021
10986 jsr mcget
10988 asl
10990 asl
10992 asl
10994 asl
10996 sta $a9
10998 jsr mcget
11000 and #$0f
11002 ora $a9
11004 sta $a9
11006 jsr mcget
11008 sta $aa
11010 lda #0
11012 sta $19
11014 lda #$d8
11016 sta $1a
11018 ldy $a8
11020 mcc1 dey
11022 bmi mcc2
11024 jsr add19
11026 jmp mcc1
11028 mcc2 lda $19
11030 clc
11032 adc $a7
11034 sta $19
11036 bcc mcc3
11038 inc $1a
11040 mcc3 ldy $a6
11042 mcc4 lda $aa
11044 sta ($19),y
11046 jsr ropen
11048 lda $a9
11050 sta ($19),y
11052 jsr rclose
11054 dey
11056 bpl mcc4
11058 jsr add19
11060 dec $a5
11062 bpl mcc3
11064 rts
11066 ;
11068 ho lda $d011
11070 ora #$20
11072 sta $d011
11074 lda $d016
11076 ora #$10
11078 sta $d016
11080 lda #$68
11082 sta $d018
11084 lda $dd00
11086 and #$fc
11088 sta $dd00
11090 lda $d021
11092 sta mcuvid
11094 lda $0286
11096 sta mcuvid+1
11098 lda $d018
11100 sta mcuvid+2
11102 jmp mcfxer
11104 ;
11106 hcl lda #0
11108 sta $19
11110 lda #$e0
11112 sta $1a
11114 lda #0
11116 tay
11118 ldx #$20
11120 hcl1 sta ($19),y
11122 iny
11124 bne hcl1
11126 inc $1a
11128 dex
11130 bne hcl1
11132 rts
11134 ;
11136 mchk jsr mcg1
11138 sta $b5
11140 jsr mcget
11142 sta $b4
11144 jsr $aef7
11146 jsr mcrea
11148 tay
11150 jmp $b3a2
11152 ;
11154 mcrstr sei
11156 lda evtmp
11158 ldy evtmp+1
11160 sta $300
11162 sty $301
11164 cli
11166 lda $d011
11168 and #$df
11170 sta $d011
11172 lda $d016
11174 and #$ef
11176 sta $d016
11178 lda $dd00
11180 ora #3
11182 sta $dd00
11184 lda mcuvid
11186 sta $d021
11188 lda mcuvid+1
11190 sta $0286
11192 lda mcuvid+2
11194 sta $d018
11196 rts
11198 ;
11200 mcget5 jsr mcg1
11202 sta $1d
11204 sta $a8
11206 jsr mcget
11208 sta $1e
11210 sta $a6
11212 jsr mcget
11214 sta $1f
11216 sta $21
11218 jsr mcget
11220 sta $20
11222 sta t5
11224 jsr mcget
11226 sta $b0
11228 rts
11230 ;
11232 mcfix5 jsr mcget5
11234 lda $1f
11236 cmp $1d
11238 bcs mcf1
11240 ldx $1d
11242 sta $1d
11244 sta $a8
11246 stx $1f
11248 stx $21
11250 mcf1 lda $20
11252 cmp $1e
11254 bcs mcf2
11256 ldx $1e
11258 sta $1e
11260 sta $a6
11262 stx $20
11264 stx $t5
11266 mcf2 rts
11268 ;
11270 mcrec jsr mcfix5
11272 lda #$f1
11274 sta t3
11276 lda $1d
11278 sta $21
11280 lda $1f
11282 sec
11284 sbc $1d
11286 sta t6
11288 jsr mdr1
11290 lda #1
11292 sta t3
11294 lda $1e
11296 sta $a6
11298 sta t5
11300 lda $20
11302 sec
11304 sbc $1e
11306 sta t6
11308 lda $1d
11310 sta $a8
11312 lda $1f
11314 sta $21
11316 jmp mdr1
11318 ;
11320 mcbox jsr mcfix5
11322 lda #0
11324 sta t3
11326 mcb1 lda $1e
11328 sta $a6
11330 sta t5
11332 lda $1d
11334 sta $21
11336 lda $1f
11338 sta $a8
11340 jsr mdr1
11342 inc $1e
11344 ldy $1e
11346 cpy $20
11348 beq mcb1
11350 bcc mcb1
11352 rts
11354 ;
11356 mcdis lda #1
11358 .byte $2c
11360 ;
11362 mccir lda #0
11364 sta 9
11366 ldy #0
11368 sty t3
11370 jsr mcg1
11372 stx $a5
11374 jsr mcget
11376 stx $a6
11378 jsr mcget
11380 stx $a8
11382 jsr $aefd
11384 jsr $ad9e
11386 ldx #<mymult
11388 ldy #>mymult
11390 jsr $bbd7
11392 jsr $aefd
11394 jsr $ad9e
11396 ldx #<mxmult
11398 ldy #>mxmult
11400 jsr $bbd7
11402 jsr mcget
11404 stx $b0
11406 lda #0
11408 sta $a7
11410 sta $ad
11412 sta $ae
11414 mcd1 ldx $ae
11416 lda $a7
11418 asl
11420 bcc mcd2
11422 inx
11424 mcd2 sec
11426 adc $ad
11428 bcc mcd3
11430 inx
11432 mcd3 sta $ab
11434 stx $ac
11436 sec
11438 sbc $a8
11440 bcs mcd4
11442 dex
11444 clc
11446 mcd4 sbc $a8
11448 bcs mcd5
11450 dex
11452 mcd5 sta $a9
11454 stx $aa
11456 jsr mcmul
11458 lda 9
11460 bne mcd11
11462 ldy #0
11464 sty t6
11466 mcd6 lda $a5
11468 ldx mxtype,y
11470 php
11472 ldx mxadds,y
11474 plp
11476 beq mcd7
11478 sec
11480 sbc 0,x
11482 jmp mcd8
11484 mcd7 clc
11486 adc 0,x
11488 mcd8 sta $b5
11490 lda $a6
11492 ldx mytype,y
11494 php
11496 ldx myadds,y
11498 plp
11500 beq mcd9
11502 sec
11504 sbc 0,x
11506 jmp mcd10
11508 mcd9 clc
11510 adc 0,x
11512 mcd10 sta $b4
11514 lda $b0
11516 jsr mcplo
11518 ldy t6
11520 iny
11522 sty t6
11524 cpy #8
11526 bne mcd6
11528 jmp mcd17
11530 mcd11 ldy #0
11532 sty t6
11534 ldy #$0f
11536 mcd12 lda $a3,y
11538 sta mcbuf1,y
11540 dey
11542 bpl mcd12
11544 mcd13 lda $a5
11546 ldy t6
11548 clc
11550 ldx mctbl3,y
11552 adc 0,x
11554 sta $a8
11556 lda $a5
11558 sec
11560 ldx mctbl3,y
11562 sbc 0,x
11564 sta $21
11566 tya
11568 and #1
11570 bne mcd14
11572 lda $a6
11574 clc
11576 ldx mctbl4,y
11578 adc 0,x
11580 jmp mcd15
11582 mcd14 lda $a6
11584 sec
11586 ldx mctbl4,y
11588 sbc 0,x
11590 mcd15 sta $a6
11592 sta t5
11594 jsr mdr1
11596 ldy #$0f
11598 mcd16 lda mcbuf1,y
11600 sta $a3,y
11602 dey
11604 bpl mcd16
11606 ldy t6
11608 iny
11610 sty t6
11612 cpy #4
11614 bne mcd13
11616 mcd17 lda $ab
11618 sta $ad
11620 lda $ac
11622 sta $ae
11624 inc $a7
11626 lda $ac
11628 bpl mcd19
11630 eor #$ff
11632 tax
11634 lda $ab
11636 eor #$ff
11638 clc
11640 adc #1
11642 bcc mcd18
11644 inx
11646 mcd18 jmp mcd20
11648 mcd19 tax
11650 lda $ab
11652 mcd20 stx t2
11654 sta 7
11656 lda $aa
11658 bpl mcd22
11660 eor #$ff
11662 tax
11664 lda $a9
11666 eor #$ff
11668 clc
11670 adc #1
11672 bcc mcd21
11674 inx
11676 mcd21 jmp mcd23
11678 mcd22 tax
11680 lda $a9 ;
11682 mcd23 sta $14
11684 stx $15
11686 lda t2
11688 cmp $15
11690 bcc mcd24
11692 lda 7
11694 cmp $14
11696 beq mcd24
11698 bcc mcd24
11700 lda $a9
11702 sta $ad
11704 lda $aa
11706 sta $ae
11708 dec $a8
11710 mcd24 lda $a8
11712 cmp $a7
11714 bcc mcd25
11716 jmp mcd1
11718 mcd25 rts
11720 ;
11722 mcmul ldy $a7
11724 jsr mcmy
11726 stx $1e
11728 ldy $a8
11730 jsr mcmy
11732 stx $1d
11734 ldy $a7
11736 jsr mcmx
11738 stx $1f
11740 ldy $a8
11742 jsr mcmx
11744 stx $20
11746 rts
11748 ;
11750 mcmx sec
11752 .byte $24
11754 mcmy clc
11756 php
11758 jsr $b3a2
11760 plp
11762 bcc mcm1
11764 ldy #>mxmult
11766 lda #<mxmult
11768 bne mcm2
11770 mcm1 lda #<mymult
11772 ldy #>mymult
11774 mcm2 jsr $ba28
11776 jsr $b1bf
11778 ldx $65
11780 rts
11782 ;
11784 mctxt lda #0
11786 sta t3
11788 jsr mcg1
11790 stx $a7
11792 jsr mcget
11794 stx $a8
11796 jsr mcget
11798 stx $a6
11800 jsr mcget
11802 stx $a5
11804 jsr mcget
11806 stx $b0
11808 jsr $aefd
11810 jsr $ad9e
11812 jsr $b6a3
11814 sta $ad
11816 ldy #0
11818 mct1 sty $ae
11820 lda ($22),y
11822 cmp #$40
11824 bcc mct2
11826 sbc #$40
11828 cmp #$80
11830 bcc mct2
11832 sbc #$40
11834 mct2 ldy #0
11836 sty $ab
11838 ldy #3
11840 mct3 asl
11842 rol $ab
11844 dey
11846 bne mct3
11848 sta $14
11850 lda $ab
11852 clc
11854 adc #$d0
11856 sta $15
11858 sei
11860 lda 1
11862 and #$fb
11864 sta 1
11866 ldy #7
11868 mct4 lda ($14),y; char definition
11870 sta mcbuf2,y
11872 dey
11874 bpl mct4
11876 lda 1
11878 ora #4
11880 sta 1
11882 cli
11884 lda $a8
11886 sta $b4
11888 lda $a6
11890 sta $a9
11892 lda $a5
11894 sta $aa
11896 lda #0
11898 sta $ab
11900 mct5 lda #7
11902 sta $ac
11904 lda $a7
11906 sta $b5
11908 ldy $ab
11910 lda mcbuf2,y
11912 mct6 asl
11914 bcc mct8
11916 pha
11918 mct7 lda $b0
11920 jsr mcplo
11922 inc $b5
11924 dec $a9
11926 bne mct7
11928 jmp mct10
11930 mct8 pha
11932 mct9 lda #0
11934 jsr mcplo
11936 inc $b5
11938 dec $a9
11940 bne mct9
11942 mct10 lda $a6
11944 sta $a9
11946 pla
11948 dec $ac
11950 bpl mct6
11952 inc $b4
11954 dec $aa
11956 bne mct5
11958 lda $a5
11960 sta $aa
11962 ldy $ab
11964 iny
11966 sty $ab
11968 cpy #8
11970 bne mct5
11972 lda $a6
11974 asl
11976 asl
11978 asl
11980 clc
11982 adc $a7
11984 sta $a7
11986 ldy $ae
11988 iny
11990 cpy $ad
11992 beq a19
11994 jmp mct1
11996 ;
11998 ropen pha
12000 sei
12002 lda 1
12004 and #$f8
12006 sta 1
12008 pla
12010 rts
12012 ;
12014 rclose pha
12016 lda 1
12018 ora #7
12020 sta 1
12022 cli
12024 pla
12026 rts
12028 ;
12030 add19 lda $19
12032 clc
12034 adc #$28
12036 sta $19
12038 bcc a19
12040 inc $1a
12042 a19 rts
12044 ;
12046 mctbl1 =*
12048 .word $e000
12050 .word $e140
12052 .word $e280
12054 .word $e3c0
12056 .word $e500
12058 .word $e640
12060 .word $e780
12062 .word $e8c0
12064 .word $ea00
12066 .word $eb40
12068 .word $ec80
12070 .word $edc0
12072 .word $ef00
12074 .word $f040
12076 .word $f180
12078 .word $f2c0
12080 .word $f400
12082 .word $f540
12084 .word $f680
12086 .word $f7c0
12088 .word $f900
12090 .word $fa40
12092 .word $fb80
12094 .word $fcc0
12096 .word $fe00
12098 ;
12100 mctbl2 .byte $3f,$cf,$f3,$fc
12102 ;
12104 mctbl3 .byte $1d,$1d,$1e,$1e
12106 ;
12108 mctbl4 .byte $1f,$1f,$20,$20
12110 ;
12112 mxmult *=*+6
12114 ;
12116 mymult *=*+6
12118 ;
12120 mxtype .byte 0,1,0,1,0,1,0,1
12122 ;
12124 mytype .byte 0,0,1,1,0,0,1,1
12126 ;
12128 mxadds =*
12130 .byte $1d,$1d,$1d,$1d
12132 .byte $1e,$1e,$1e,$1e
12134 ;
12136 myadds =*
12138 .byte $1f,$1f,$1f,$1f
12140 .byte $20,$20,$20,$20
12142 ;
12144 mcbuf1 *=*+$10
12146 mcbuf2 *=*+8
12148 ;
12150 *=*+(*&1)
12152 evtmp .word $e38b
12154 ;
12156 mcfxer sei
12158 lda $300
12160 ldy $301
12162 sta evtmp
12164 sty evtmp+1
12166 lda #<mcerr
12168 ldy #>mcerr
12170 sta $300
12172 sty $301
12174 cli
12176 rts
12178 ;
12180 mcerr jsr mcrstr
12182 jmp ($300)
12184 ;
12186 mcuvid *=*+3
12188 ;